package com.guodi.model.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.guodi.model.entity.*;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guodi.model.vo.ApiIdtProblemVo;
import com.guodi.model.vo.ApiProblemToExcelVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;


/**
* 指标填报体检关联问题  服务类接口
* @author lzy
* @date 2023-05-31
*/
public interface IIdtFillProblemService extends IService<IdtFillProblem> {

    /**
     * @描述: 生成任务关联问题数据
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/5/31 14:54
     **/
    void generateProblem(IdtFillTask task);

    /**
     * @描述: 问题触发器
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/8/21 10:35
     **/
    boolean triggerIssue(DiagnosisProblemScene problemScene, Map<String,ApiIndicatorsVal> fillValueMap);

    /**
     * @描述:获取分页详情
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/6/1 9:12
     **/
    IPage<ApiProblemToExcelVo> pageDetail(Page page, String year, String divisionCode);

    /**
     * @描述: 导出excel文件
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/6/1 9:58
     **/
    void downLoadFile(String year, String divisionCode, HttpServletResponse response);

    /**
     * @描述: 获取问题列表
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/8/9 10:44
     **/
    List<ApiIdtProblemVo> getProblemList(String year, String divisionCode);

    /**
     * @描述: 通过id获取关联的问题名称
     * @入参:
     * @出参:
     * @作者: lzy
     * @日期: 2023/8/18 10:33
     **/
    String getProblemNameById(String problemId);

}
